package com.ww.basic.fun

import java.io.{File, PrintWriter}

object WriteToFileTest {
  /**
   * 借贷模式
   *
   * @param fileName
   * @param codeBlock
   */
  def writeToFile(fileName: String)(codeBlock: PrintWriter => Unit): Unit = {
    val writer = new PrintWriter(new File(fileName))
    try {
      codeBlock(writer)
    } finally {
      writer.close()
    }
  }

  def main(args: Array[String]): Unit = {
    // Scala 中这段简写的核心原则是 “单参数方法的中缀表示法（Infix Notation）”——Scala 为了让代码更简洁、接近自然语言，允许满足特定条件的方法调用省略 点号（.） 和 括号（()）
    // 无参数，多参数不适用
    writeToFile("D:/test/output.txt") { writer =>
//      writer.write("hello from Scala")
      writer write "hello from Scala"
    }
  }
}
